package controller;

import conponent.Entity;

import module.Position;
import module.StaticValue;

import java.util.List;

/**
 * 检测实体是否与其他实体发生碰撞的工具类
 */
public class CollisionUtils {
    /**
     * 检测实体与实体之间的碰撞
     * @param et 被检测的实体
     * @return 检测结果
     */
    public static boolean isCollision(Entity et){
        List<Entity> etl = et.getView().getEntityList();
        Position pos = et.getPosition();
        if(pos.X<0||pos.Y<0||pos.X> StaticValue.windowWidth-62||pos.Y>StaticValue.windowHeight-62){
            return true;
        }
        for(Entity it:etl){
            if(!et.equals(it)){
                Boolean collision = pos.isCollision(it.getPosition());
                if(collision){
                    return true;
                }
            }
        }
        return false;
    }
}
